package com.statemachine;

/**
 * 用enum实现的状态机，首先定义各种输入
 * 
 * @author Administrator
 *
 */
public enum Input {
	// 除了最后2个以外，其它输入都有价格
	// 五分镍币,一角硬币,两角五分,美元
	NICKEL(5), DIME(10), QUARTER(25), DOLLAR(100),
	// 牙膏，土豆片，苏打水，肥皂
	TOOTHPASTE(200), CHIPS(75), SODA(100), SOAP(50), ABORT_TRANSACTION {
		@Override
		public int amount() {
			throw new RuntimeException("ABORT.amount()");
		}
	},
	STOP {
		@Override
		public int amount() {
			throw new RuntimeException("SHUT_DOWN.amount()");
		}
	};

	int value;

	Input(int value) {
		this.value = value;
	}

	Input() {

	}

	int amount() {
		return value;
	}

}
